#include "Manada.hpp"

#include <iostream>

using namespace eosim::core;

Manada::Manada( int number, int cantLeones ):
	number(number),
	cantLeonas(0),
	reyRecurso(1,1)
	{
		//cambiar a distr
		// empieza en 1, no termina en cantLeones + 1 porque tiene un -1 por el Rey.
		//hipotesis que una manada en estado inicial tienen todas sus leones hembras menos uno que es el rey
		for ( int i = 1; i < cantLeones ; i++ )
		{
			Leon *l = new Leon( i, number, false );
			cantLeonas++;
			leonas.push_back(l);
		}

		rey = new Leon( 0, number, true );
		
	}

Manada::~Manada() {}

Leon* Manada::addLeona( ) 
{
	Leon *l = new Leon( ++cantLeonas , number, false );
	leonas.push_back(l);
	return l;
}

Leon* Manada::addCachorro( bool isMacho ) 
{
	Leon *l;
	if(isMacho)
	{
		l = new Leon( 0, number, true );
	}
	else
	{
		l = new Leon( ++cantLeonas, number, false );
		leonas.push_back(l);
	}
	return l;
}

void Manada::setRey( Leon* l )
{
	//delete rey;
	rey = l;
}


void Manada::muereLeona( Leon* l )
{
  vector<Leon*>::iterator it;
  for ( it = leonas.begin() ; it < leonas.end(); it++ )
  {
	  if ( ((Leon*)*it)->getNumber() == l->getNumber() )
	  {
		  leonas.erase(it);
		  return;
	  }
  }
}
